package com.desire.mapper;

import com.desire.entity.Book;
import org.apache.ibatis.annotations.*;

import java.util.List;
import java.util.Map;

/**
 * @author LittleDesire
 * @description
 * @date 2022-04-12 周二 9:17
 * @since 17
 */
@Mapper
public interface BookMapper {

    /**
     * 查询所有书的名字和作者
     * @return List<Map<String, Object>>
     */
    @Select("select * from oadb.book")
    List<Map<String, Object>> bookQuery();
    /**
     * 根据id查询书籍
     */
    Book queryById(int id);
    /**
     * 查询所有记录
     */
    List<Book> selectList();
    List<Map<String, Object>> selectMap();
    /**
     * 计数
     */
    @Select("select count(1) from oadb.bookbak;")
    int count();
    /**
     * 查询价格最贵的书的名字
     */
    String selectHPriceName();




    /**
     *  插入书籍 参数必须以一对应
     */
    int save(@Param("name") String name,@Param("author") String author,@Param("price") double price);
    /**
     *  参数也必须一一对应
     */
    int add(Map<String, Object> map);
    /**
     *  sql语句动态的，参数可以传任意对的个数
     */
    int insert(Map<String, Object> map);




    /**
     * 根据id删除
     */
    @Delete("delete from oadb.book where id = #{adfasd}")
    int deleteById(Integer id);
    /**
     * 根据name删除
     */
    @Delete("delete from oadb.book where name = #{name}")
    int deleteByName(String name);
    /**
     * 批量删除
     */
    int deleteByIds(@Param("id")Integer[] id);

    /**
     * 可指定字段批量删除
     */
    int deleteByIdss(Map<String, Object> map);



    /**
     * 更新书籍信息
     */
    int updateBook(Book book);
    int updateBook(Map<String, Object> map);
}
